Перейти к основному содержимому

Алгоритмы и структуры данных

· 2 мин. чтения

Algoritmid ja andmestruktuurid для IASB ведет Виктор Леппиксон.

Его минусы:

  • Практические уроки отсутсвуют. Всё в руках студента - сам пусть учит.
  • Безразличие до проблем студентов, в частности если на экзамен все места зарегистрированы.

Немного внешнего материала..


Экзамен. Теория

  1. Что такое сериализация, где необходимо её использовать.
  2. Сложность некоего алгоритма была оценена как функция T(n), что она собой значит?
  3. (тут график нужен) Есть многоуровневая структура быстрого поиска (Мои пояснения.. Например нижняя цепочка проходит через все элементы 5-6-7-10-13-15, а верхняя только 5-7-13). Как быть если необходимо добавить новый элемент в эту структуру?
  4. Как освобождается память, отведённая под двоичное дерево.
  5. Постройте "2-3-4" дерево из элементов, которые поступили в порядке.. 200 100 120 80 10 30 210 220 230 140 130 150
  6. Oletame, et kettal paikneva andmestruktuuri realiseerimiseks B-puu, kuidas te valiksite puude jargu?
  7. Нарисуйте 3-х дерево из слов: liiga liider liiklus liialdus liikluvus liim liimipulk
  8. Lineaarne proovimise meetod (paiskpaigutus)
  9. Nullmeetodil sortimise algoritm
  10. В оперативной памяти находится две фотографии, на которой под один пиксель отведён 1 байт. Оба файла одинакового размера. На одной горы (?), на другой - карнавал в Рио-де-Жанейро. Оба файла сжимаются кодированием Хаффмана. Какая займёт меньше памяти, почему.

Экзамен. Практика

Есть такие структуры..

struct Student {char *pName,*pCode; char **pSubjects;}; struct Subject {char *pName,*pCode, *pTeacher; double nPoints; struct Subject *pNext;}

Из них составляется два массива всех студентов и всех предметов.. Известны
*pSubjectList, *pStudentList.
Необходимо написать функцию с прототипом

int NewSubject (struct Student **pStudentList, struct Subject *pSubjectList, char *pStudentCode, char *pSubjectCode)

Причём работает она таким образом..
Для получения ссылки на нужного студента - есть функция, возвращающая значение индекса в массиве студентов с прототипом
int HashFun (char*)

Таким образом NewSubject() должна проверить сначала есть ли такой студент, потом - есть ли такой предмет, потом надо хитро посмотреть сколько у данного студента есть занятых мест в Student.pSubjects, куда помещается максимум 5 мест. Так вот надо найти свободное место, выделить под него память и скопировать в него код предмета (pSubjectCode). В случае если какой-то шаг не удался - функция возвращает ноль.